home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Freeware / Adobe Air 1.5 / AdobeAIRInstaller.exe / setup.swf / scripts / mx / controls / scrollClasses / ScrollThumb.as < prev   
Encoding:
Text File  |  2008-10-29  |  3.3 KB  |  105 lines

  1. package mx.controls.scrollClasses
  2. {
  3.    import flash.events.MouseEvent;
  4.    import flash.geom.Point;
  5.    import mx.controls.Button;
  6.    import mx.core.mx_internal;
  7.    import mx.events.ScrollEventDetail;
  8.    
  9.    use namespace mx_internal;
  10.    
  11.    public class ScrollThumb extends Button
  12.    {
  13.       mx_internal static const VERSION:String = "3.0.0.0";
  14.       
  15.       private var lastY:Number;
  16.       
  17.       private var datamin:Number;
  18.       
  19.       private var ymax:Number;
  20.       
  21.       private var ymin:Number;
  22.       
  23.       private var datamax:Number;
  24.       
  25.       public function ScrollThumb()
  26.       {
  27.          super();
  28.          explicitMinHeight = 10;
  29.          stickyHighlighting = true;
  30.       }
  31.       
  32.       private function stopDragThumb() : void
  33.       {
  34.          var _loc1_:ScrollBar = ScrollBar(parent);
  35.          _loc1_.mx_internal::isScrolling = false;
  36.          _loc1_.mx_internal::dispatchScrollEvent(_loc1_.mx_internal::oldPosition,ScrollEventDetail.THUMB_POSITION);
  37.          _loc1_.mx_internal::oldPosition = NaN;
  38.          systemManager.removeEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler,true);
  39.          systemManager.stage.removeEventListener(MouseEvent.MOUSE_MOVE,stage_mouseMoveHandler);
  40.       }
  41.       
  42.       override protected function mouseDownHandler(param1:MouseEvent) : void
  43.       {
  44.          super.mouseDownHandler(param1);
  45.          var _loc2_:ScrollBar = ScrollBar(parent);
  46.          _loc2_.mx_internal::oldPosition = _loc2_.scrollPosition;
  47.          lastY = param1.localY;
  48.          systemManager.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler,true);
  49.          systemManager.stage.addEventListener(MouseEvent.MOUSE_MOVE,stage_mouseMoveHandler);
  50.       }
  51.       
  52.       private function mouseMoveHandler(param1:MouseEvent) : void
  53.       {
  54.          if(ymin == ymax)
  55.          {
  56.             return;
  57.          }
  58.          var _loc2_:Point = new Point(param1.stageX,param1.stageY);
  59.          _loc2_ = globalToLocal(_loc2_);
  60.          var _loc3_:Number = _loc2_.y - lastY;
  61.          _loc3_ += y;
  62.          if(_loc3_ < ymin)
  63.          {
  64.             _loc3_ = ymin;
  65.          }
  66.          else if(_loc3_ > ymax)
  67.          {
  68.             _loc3_ = ymax;
  69.          }
  70.          var _loc4_:ScrollBar = ScrollBar(parent);
  71.          _loc4_.mx_internal::isScrolling = true;
  72.          mx_internal::$y = _loc3_;
  73.          var _loc5_:Number = _loc4_.scrollPosition;
  74.          var _loc6_:Number = Math.round((datamax - datamin) * (y - ymin) / (ymax - ymin)) + datamin;
  75.          _loc4_.scrollPosition = _loc6_;
  76.          _loc4_.mx_internal::dispatchScrollEvent(_loc5_,ScrollEventDetail.THUMB_TRACK);
  77.          param1.updateAfterEvent();
  78.       }
  79.       
  80.       override mx_internal function buttonReleased() : void
  81.       {
  82.          super.mx_internal::buttonReleased();
  83.          stopDragThumb();
  84.       }
  85.       
  86.       private function stage_mouseMoveHandler(param1:MouseEvent) : void
  87.       {
  88.          if(param1.target != stage)
  89.          {
  90.             return;
  91.          }
  92.          mouseMoveHandler(param1);
  93.       }
  94.       
  95.       mx_internal function setRange(param1:Number, param2:Number, param3:Number, param4:Number) : void
  96.       {
  97.          this.ymin = param1;
  98.          this.ymax = param2;
  99.          this.datamin = param3;
  100.          this.datamax = param4;
  101.       }
  102.    }
  103. }
  104.  
  105.